/* 
管理计数器模块数据的pinia子模块
*/
import {defineStore} from 'pinia'

// 返回用于创建store对象的函数
const useCounterStore = defineStore('counter', {
  // 必须是返回状态对象的箭头函数
  state: () => ({
    count: 0
  }),
  // pinia没有mutation, 只有action
  actions: {
    increment (num: number) {
      this.count += num
    },
    decrement (num: number) {
      this.count -= num
    },
    incrementAsync (num: number) {
      setTimeout(() => {
        this.increment(num)
      }, 1000);
    }
  },
  getters: {
    evenOrOdd ():string {
      return this.count%2===0 ? '偶数' : '奇数'
    }
  }
})

export default useCounterStore


/* export default {
  namespaced: true, // 开启命名空间  避免命名冲突
  state: {
    count: 0
  },
  // 包含直接更新状态数据的方法
  mutations: {
    increment (state, num) {
      state.count += num
    },
    decrement (state, num) {
      state.count -= num
    }
  },
  // 包含一些进行异步操作后更新数据的方法
  actions: {
    incrementAsync ({commit}, num) {
      setTimeout(() => {
        commit('increment', num)
      }, 1000);
    }
  },
  // 包含getter计算属性方法
  getters: {
    evenOrOdd (state) {
      return state.count%2===0 ? '偶数' : '奇数'
    }
  }
} */